The present invention relates generally to software, and particularly to managing operating system messages sent to an application window upon the invocation of a system-generated focus change.
Most computers have a special software package called an operating system that is responsible for managing many of the computer's normal functions. One such function is the ability to direct keyboard input to an application that may be one of many applications executing simultaneously. Because the user can only work in one window at a time, the operating system automatically sends all keyboard input to the “active window.” This ensures that all keystrokes go to the program the user is currently using. This paradigm works well so long as the user is aware of which window has the “input focus.” However, it can present a rather bothersome side effect.
For example, consider a user who edits a document in a first application window, and conducts an on-line chat session in a second application window. While the first application window has the input focus, the operating system delivers all keystrokes to that application process. If an instant message arrives for the second application window, however, the operating system may change the input focus from the first window to the second window unbeknownst to the user. In these cases, the user may continue to type believing that he is editing the document in the first window, when in fact, whatever he is typing is actually being entered into (and possibly sent from) the on-line chat application running in the second window. Thus, the user would benefit from knowing when a non-user initiated focus change occurs to prevent text and other user input from being entered unknowingly into another application window.